package com.newstore.view;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.newstore.R;
import com.newstore.classes.Order;
import com.newstore.classes.User;
import com.newstore.database.AccessDatabase;
import com.newstore.database.UserDatabase;
import com.newstore.jeudedonnees.InsertData;

/**
 * Authentification est l'activité qui se lance au démarrage de l'application
 * Elle permet à un utilisateur de s'authentifier avec login et mdp
 * 
 * @author gprudhom
 * @version 1.0
 */
public class Authentication extends Activity
{
	private Context context;
	static AccessDatabase accessDB;
	private SQLiteDatabase database;
	
	/**
     * Se lance à la création de l'activité 
     * Instancie les contrôles de l'activité
     * 
     */
	   @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.main);
	        context = this;
	        accessDB = new AccessDatabase(context);
	        database = accessDB.open(true);
	      //* 
	        InsertData insertData = new InsertData();
	        database = insertData.insertionUser(database); //  3 utilisateurs
	        database = insertData.insertionDelivery(database);   // 3 destinataires
	        database = insertData.insertionProduct(database);   // 3 types de produit
	        database = insertData.insertionOrder(database);   // 1 commandes
	       // */
	        
	        final Button buttonOK = (Button) findViewById(R.id.BtOk);
	        final Button buttonRst = (Button) findViewById(R.id.BtRst);
	        final EditText etLogin = (EditText) findViewById(R.id.etLog);
	        final EditText etMdp = (EditText) findViewById(R.id.etMdp);
	        
	        /**
		        * Test l'authentification
		        * Si l'authentification à réussi, lance l'activité correspondante
		        * 
		        */
	        buttonOK.setOnClickListener(new View.OnClickListener() {
	            public void onClick(View v) {
	            	 database = accessDB.open(true);
	            		UserDatabase usDb = new UserDatabase(database);
	            	try{
	            		User user = usDb.getUserFromLoginAndPwd(etLogin.getText().toString(), etMdp.getText().toString()); 
	            		if (user == null)
	            			Toast.makeText(getApplicationContext(), "Authentification non valide", Toast.LENGTH_LONG).show();
	            		else
	            		{
	            			Toast.makeText(getApplicationContext(), "Authentification valide", Toast.LENGTH_SHORT).show();
	            			/**
	            			 *  Lance l'activité selon de la fonction de l'utilisateur
	            			 */
	            			if( user.getLogin().equals("prepa"))
	            				onStartActivity(ListOrder.class);
	            			else if( user.getLogin().equals("expe"))
	            				onStartActivity(InfoOrder.class);
	            			else if( user.getLogin().equals("recep"))
	            				onStartActivity(InfoProduct.class);
	            		}
	            	}
	            	catch(Exception e){
	            		Toast.makeText(getApplicationContext(), "L'authentification a échouée", Toast.LENGTH_LONG).show();
	            	}
	            }
	           
	        });

	        /**
		        * Remise à zéro des champs des editText
		        * 
		        */
	        buttonRst.setOnClickListener(new View.OnClickListener() {
	            public void onClick(View v) {
	            	Toast.makeText(getApplicationContext(), "Reset", Toast.LENGTH_LONG).show();
	            	etMdp.setText("");
	            	etLogin.setText("");
	            }
	        });
	    }
	    
	   /**
        * Lance l'activité correspondante
        * 
        * @param pActivite
        *            L'activite à lancer
        */
	    public void onStartActivity(Class pActivite){
	    	Intent intent = new Intent(this, pActivite);
			startActivity(intent);
	    }
	    
	    /**
	        * Détruit la classe
	        * 
	        */
	    @Override
		protected void onDestroy() {  
	        super.onDestroy();  
	        this.finish();  
	    }
}
